package com.ruoyi.notice.service.impl;

import java.util.List;
import java.util.Optional;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.notice.domain.mgNotice;
import com.ruoyi.notice.service.mgNoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.notice.mapper.NoticeMapper;
import com.ruoyi.notice.domain.Notice;
import com.ruoyi.notice.service.INoticeService;

/**
 * 通知管理Service业务层处理
 *
 * @author Dark
 * @date 2025-05-17
 */
@Service
public class NoticeServiceImpl implements INoticeService {
    @Autowired
    private NoticeMapper noticeMapper;

    @Autowired
    private mgNoticeService mgNoticeService;
    /**
     * 查询通知管理
     *
     * @param id 通知管理主键
     * @return 通知管理
     */
    @Override
    public Notice selectNoticeById(Long id) {
        Notice notice = noticeMapper.selectNoticeById(id);
        mgNotice byId = mgNoticeService.getById(id.toString());
        notice.setContent(byId.getNotice());
        return notice;
    }

    /**
     * 查询通知管理列表
     *
     * @param notice 通知管理
     * @return 通知管理
     */
    @Override
    public List<Notice> selectNoticeList(Notice notice) {
        List<Notice> notices = noticeMapper.selectNoticeList(notice);
        for (Notice notice1 : notices) {
            Long id = notice1.getId();
            mgNotice mgNotice = mgNoticeService.getById(id.toString());
            notice1.setContent(mgNotice.getNotice());
        }
        return notices;
    }

    /**
     * 新增通知管理
     *
     * @param notice 通知管理
     * @return 结果
     */
    @Override
    public int insertNotice(Notice notice) {
        notice.setCreateTime(DateUtils.getNowDate());
        int i = noticeMapper.insertNotice(notice);
        if (i>0){
            String content = notice.getContent();
            Long id = notice.getId();
            mgNotice mgNotice = new mgNotice();
            mgNotice.setNotice(content);
            mgNotice.setId(id.toString());
            mgNoticeService.insert(mgNotice);
        }
        return i;
    }

    /**
     * 修改通知管理
     *
     * @param notice 通知管理
     * @return 结果
     */
    @Override
    public int updateNotice(Notice notice) {
        notice.setUpdateTime(DateUtils.getNowDate());
        return noticeMapper.updateNotice(notice);
    }

    /**
     * 批量删除通知管理
     *
     * @param ids 需要删除的通知管理主键
     * @return 结果
     */
    @Override
    public int deleteNoticeByIds(Long[] ids) {
        return noticeMapper.deleteNoticeByIds(ids);
    }

    /**
     * 删除通知管理信息
     *
     * @param id 通知管理主键
     * @return 结果
     */
    @Override
    public int deleteNoticeById(Long id) {
        mgNoticeService.delete(id.toString());
        return noticeMapper.deleteNoticeById(id);
    }
}
